package com.stack.knowyoudao.dao;

import com.stack.knowyoubean.bean.Schedule;
import org.apache.ibatis.annotations.*;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 课程信息表持久层
 *
 * @author stack
 */

@Repository("scheduleDao")
@Scope("singleton")
@CacheNamespace
public interface ScheduleDao {

    /**
     * 查询课程信息
     *
     * @param tcid 教师编号
     * @return 课程信息
     */
    @Select("<script>select * from schedule <where> <if test=\" tcid!=null and tcid != '' \"> tcid=#{tcid} </if> </where> </script>")
    List<Schedule> findSchedule(@Param("tcid") String tcid);

    /**
     * 查询教师持有的课程信息 安全校验
     *
     * @param tcid 教师编号
     * @return 课程号
     */
    @Select("select sid from schedule where tcid=#{tcid}")
    List<Integer> findScheduleId(@Param("tcid") String tcid);

    /**
     * 添加课程
     *
     * @param schedule 课程实体
     * @return 插入标记
     */
    @Insert("insert into schedule(tcid,sname) values(#{tcid},#{sname})")
    int insertSchedule(Schedule schedule);


    /**
     * 更新课程
     *
     * @param schedule 课程实体
     * @return 更新标记
     */
    @Update("update schedule set sname=#{sname} where sid=#{sid}")
    int updateSchedule(Schedule schedule);

    /**
     * 删除课程
     *
     * @param schedule 课程实体
     * @return 删除标记
     */
    @Delete("delete from schedule where sid=#{sid}")
    int deleteSchedule(Schedule schedule);

    /**
     * 查询指定id课程
     *
     * @param sid 课程号
     * @return 课程信息
     */
    @Select("select * from schedule where sid=#{sid}")
    Schedule findScheduleById(@Param("sid") Integer sid);

}
